ํ๋์ ์ธ ๊ธ๋ก๋ฒ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํด ํ์ฅ ๊ฐ๋ฅํ ๋ถ์ฐ ACID ํธ๋์ญ์ ์ ์ ๊ณตํ๋๋ก ์ค๊ณ๋ NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ธ๊ณ๋ฅผ ํํํด ๋ณด์ธ์. ์ํคํ ์ฒ, ์ด์ ๋ฐ ์ค์ ์ฌ์ฉ ์ฌ๋ก์ ๋ํด ์์๋ณด์ธ์.
NewSQL: ์ ์ธ๊ณ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ํ ๋ถ์ฐ ACID ํธ๋์ญ์ ํ์ฅ
์ค๋๋ ์ ๋ฐ์ดํฐ ์ค์ฌ ์ธ๊ณ์์ ์ ํ๋ฆฌ์ผ์ด์ ์ ํ์ฅ์ฑ๊ณผ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ๋ชจ๋ ํ์๋ก ํฉ๋๋ค. ์ ํต์ ์ธ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ฐ๋ ฅํ ACID(์์์ฑ, ์ผ๊ด์ฑ, ๊ณ ๋ฆฝ์ฑ, ์ง์์ฑ) ๋ณด์ฅ์ ์ ๊ณตํ์ง๋ง ์ํ์ ํ์ฅ์ ์ด๋ ค์์ ๊ฒช๋ ๊ฒฝ์ฐ๊ฐ ๋ง์ต๋๋ค. NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ๋ฉด์ ํ์ฅ์ฑ์ ์ ๊ณตํ์ง๋ง ์ผ๋ฐ์ ์ผ๋ก ์ฑ๋ฅ์ ์ํด ACID ์์ฑ์ ํฌ์ํฉ๋๋ค. NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ ์ธ๊ณ์ ์ฅ์ , ์ฆ NoSQL์ ํ์ฅ์ฑ๊ณผ ์ฑ๋ฅ, ๊ทธ๋ฆฌ๊ณ ๊ธฐ์กด RDBMS์ ACID ๋ณด์ฅ์ ๊ฒฐํฉํ๋ ๊ฒ์ ๋ชฉํ๋ก ํ๋ ์ค๊ฐ ์ง์ ์ผ๋ก ๋ฑ์ฅํ์ต๋๋ค.
NewSQL์ด๋ ๋ฌด์์ธ๊ฐ?
NewSQL์ ๋จ์ผ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ธฐ์ ์ด ์๋๋ผ ๊ธฐ์กด ๋ฐ์ดํฐ๋ฒ ์ด์ค ์์คํ ๊ณผ ๋์ผํ ACID ๋ณด์ฅ์ ์ ๊ณตํ๋ฉด์ NoSQL ์์คํ ์ ํ์ฅ์ฑ์ ๋ฌ์ฑํ๊ณ ์ ํ๋ ํ๋์ ์ธ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ (RDBMS)์ ํ ์ข ๋ฅ์ ๋๋ค. ๋์ฉ๋ ํธ๋์ญ์ ์ฒ๋ฆฌ ๋ฐ ๋๊ท๋ชจ ๋ฐ์ดํฐ ๋ณผ๋ฅจ์ ์ฒ๋ฆฌํ๋๋ก ์ค๊ณ๋์ด ํ๋์ ์ธ ๋ถ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉํฉ๋๋ค.
๋ณธ์ง์ ์ผ๋ก NewSQL ์์คํ ์ ๋๊ท๋ชจ๋ก ์ด์๋ ๋ ๊ธฐ์กด RDBMS์ ํ๊ณ๋ฅผ ํด๊ฒฐํ๋๋ก ์ค๊ณ๋์์ต๋๋ค. ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๋ ธ๋์ ๋ถ์ฐํ๊ณ ์ฒ๋ฆฌํ์ฌ ์ํ์ ํ์ฅ์ฑ์ ํ์ฉํ๋ฉด์๋ ํธ๋์ญ์ ์ด ์์ ์ ์ด๊ณ ์ผ๊ด๋ ๋ฐฉ์์ผ๋ก ์ฒ๋ฆฌ๋๋๋ก ๋ณด์ฅํฉ๋๋ค.
NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฃผ์ ํน์ง
- ACID ์ค์: NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ๊ณผ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ACID ์์ฑ์ ์ฐ์ ์ํฉ๋๋ค. ์ด๋ ๊ธ์ต ์์คํ ์ด๋ ์ ์์๊ฑฐ๋ ํ๋ซํผ๊ณผ ๊ฐ์ด ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ฑฐ๋ ์๊ฒฉํ ํธ๋์ญ์ ๋ณด์ฅ์ด ํ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์์ด ์ค์ํ ์๊ตฌ์ฌํญ์ ๋๋ค.
- ํ์ฅ์ฑ: ๋ฐ์ดํฐ๋ฅผ ์ฌ๋ฌ ๋ ธ๋์ ๋ถ์ฐํ๊ณ ์ฒ๋ฆฌํ์ฌ ์ํ์ ์ผ๋ก ํ์ฅํ ์ ์๋๋ก ์ค๊ณ๋์์ต๋๋ค. ์ด๋ฅผ ํตํด ์ฑ๋ฅ ์ ํ ์์ด ์ฆ๊ฐํ๋ ์ํฌ๋ก๋์ ๋ฐ์ดํฐ ๋ณผ๋ฅจ์ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
- SQL ์ธํฐํ์ด์ค: ๋๋ถ๋ถ์ NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ SQL ํธํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ฌ ๊ฐ๋ฐ์๊ฐ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ง์ด๊ทธ๋ ์ด์ ํ๊ฑฐ๋ ๊ธฐ์กด SQL ๊ธฐ์ ์ ํ์ฉํ๊ธฐ ๋ ์ฝ๊ฒ ๋ง๋ญ๋๋ค.
- ๋ถ์ฐ ์ํคํ ์ฒ: NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ผ๋ฐ์ ์ผ๋ก ๋ถ์ฐ ์ํคํ ์ฒ๋ฅผ ๊ธฐ๋ฐ์ผ๋ก ๊ตฌ์ถ๋์ด ๋์ ๊ฐ์ฉ์ฑ๊ณผ ๋ด๊ฒฐํจ์ฑ์ ๋ฌ์ฑํ ์ ์์ต๋๋ค.
- ์ฑ๋ฅ: ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ ์ ์ฅ, ๋ถ์ฐ ์ฟผ๋ฆฌ ์ฒ๋ฆฌ, ๋ฝ ์๋ ๋์์ฑ ์ ์ด์ ๊ฐ์ ๊ธฐ์ ์ ์ฌ์ฉํ์ฌ ๊ณ ์ฑ๋ฅ ํธ๋์ญ์ ์ฒ๋ฆฌ์ ์ต์ ํ๋์ด ์์ต๋๋ค.
NewSQL์ ์ํคํ ์ฒ ์ ๊ทผ ๋ฐฉ์
NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ตฌํ์๋ ์ฌ๋ฌ ์ํคํ ์ฒ ์ ๊ทผ ๋ฐฉ์์ด ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ฌํ ์ ๊ทผ ๋ฐฉ์์ ํ์ฅ์ฑ๊ณผ ACID ๋ณด์ฅ์ ๋ฌ์ฑํ๋ ๋ฐฉ์์์ ์ฐจ์ด๊ฐ ์์ต๋๋ค.
1. ๊ณต์ -๋น๊ณต์ (Shared-Nothing) ์ํคํ ์ฒ
๊ณต์ -๋น๊ณต์ ์ํคํ ์ฒ์์ ํด๋ฌ์คํฐ์ ๊ฐ ๋ ธ๋๋ ์์ฒด์ ์ธ ๋ ๋ฆฝ์ ์ธ ๋ฆฌ์์ค(CPU, ๋ฉ๋ชจ๋ฆฌ, ์คํ ๋ฆฌ์ง)๋ฅผ ๊ฐ์ง๋๋ค. ๋ฐ์ดํฐ๋ ์ด๋ฌํ ๋ ธ๋์ ๊ฑธ์ณ ํํฐ์ ๋๋๊ณ ๋ถ์ฐ๋ฉ๋๋ค. ์ด ์ํคํ ์ฒ๋ ๋ ๋ง์ ๋ ธ๋๋ฅผ ์ถ๊ฐํ๋ฉด ์์คํ ์ฉ๋์ด ์ ํ์ ์ผ๋ก ์ฆ๊ฐํ๊ธฐ ๋๋ฌธ์ ๋ฐ์ด๋ ํ์ฅ์ฑ์ ์ ๊ณตํฉ๋๋ค. ๊ณต์ -๋น๊ณต์ ์ํคํ ์ฒ๋ฅผ ์ฌ์ฉํ๋ NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ก๋ Google Spanner์ CockroachDB๊ฐ ์์ต๋๋ค.
์์: ์ ์ธ๊ณ์ ์ฌ์ฉ์๊ฐ ์๋ ๊ธ๋ก๋ฒ ์ ์์๊ฑฐ๋ ํ๋ซํผ์ ์์ํด ๋ณด์ธ์. ๊ณต์ -๋น๊ณต์ NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ฌ์ฉํ๋ฉด ํ๋ซํผ์ ์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋ ์ฌ๋ฌ ๋ฐ์ดํฐ ์ผํฐ์ ๋ฐ์ดํฐ๋ฅผ ๋ถ์ฐ์ํฌ ์ ์์ต๋๋ค. ์ด๋ฅผ ํตํด ๋ค๋ฅธ ์ง์ญ์ ์ฌ์ฉ์์๊ฒ ๋ฎ์ ์ง์ฐ ์๊ฐ์ ๋ณด์ฅํ๊ณ ์ง์ญ์ ์ฅ์ ๋ฐ์ ์ ๋์ ๊ฐ์ฉ์ฑ์ ์ ๊ณตํฉ๋๋ค.
2. ๊ณต์ ๋ฉ๋ชจ๋ฆฌ(Shared-Memory) ์ํคํ ์ฒ
๊ณต์ ๋ฉ๋ชจ๋ฆฌ ์ํคํ ์ฒ์์๋ ํด๋ฌ์คํฐ์ ๋ชจ๋ ๋ ธ๋๊ฐ ๋์ผํ ๋ฉ๋ชจ๋ฆฌ ๊ณต๊ฐ์ ๊ณต์ ํฉ๋๋ค. ์ด๋ฅผ ํตํด ๋ ธ๋ ๊ฐ์ ๋น ๋ฅธ ๋ฐ์ดํฐ ์ก์ธ์ค์ ํต์ ์ด ๊ฐ๋ฅํฉ๋๋ค. ๊ทธ๋ฌ๋ ์ด ์ํคํ ์ฒ๋ ๋ ธ๋ ์๊ฐ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ๊ณต์ ๋ฉ๋ชจ๋ฆฌ๊ฐ ๋ณ๋ชฉ ํ์์ด ๋๊ธฐ ๋๋ฌธ์ ์ผ๋ฐ์ ์ผ๋ก ํ์ฅ์ฑ์ ์ ํ์ด ์์ต๋๋ค. ์ด๋ฌํ ์ํคํ ์ฒ๋ฅผ ํ์ฉํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์๋ก๋ ํน์ ์ธ๋ฉ๋ชจ๋ฆฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค ํด๋ฌ์คํฐ๊ฐ ์์ต๋๋ค(๊ฐ์ฅ ์์ํ ์๋ฏธ์ NewSQL์ ์๋์ง๋ง ์ ์ฌํ ํธ๋์ญ์ ํ์ฅ ์ ๊ทผ ๋ฐฉ์์ ๋ณด์).
3. ๊ณต์ ๋์คํฌ(Shared-Disk) ์ํคํ ์ฒ
๊ณต์ ๋์คํฌ ์ํคํ ์ฒ์์๋ ํด๋ฌ์คํฐ์ ๋ชจ๋ ๋ ธ๋๊ฐ ๋์ผํ ์คํ ๋ฆฌ์ง ์ฅ์น๋ฅผ ๊ณต์ ํฉ๋๋ค. ์ด๋ ๋ฐ์ดํฐ ๊ด๋ฆฌ๋ฅผ ๋จ์ํํ๊ณ ๋์ ๊ฐ์ฉ์ฑ์ ์ ๊ณตํฉ๋๋ค. ๊ทธ๋ฌ๋ ๋ชจ๋ ๋ ธ๋๊ฐ ๋์ผํ ์คํ ๋ฆฌ์ง์ ์ก์ธ์คํด์ผ ํ๋ฏ๋ก ์ด ์ํคํ ์ฒ๋ ๋ณ๋ชฉ ํ์์ด ๋ ์ ์์ต๋๋ค. ํด๋ฌ์คํฐ๋ง๋ ์ผ๋ถ ๊ธฐ์กด RDBMS ์์คํ ์ NewSQL๋ก ๋ถ๋ฅ๋์ง๋ ์๋๋ผ๋ ํ์ฅ ๊ฐ๋ฅํ ํธ๋์ญ์ ์ฒ๋ฆฌ๋ผ๋ ๋ ๋์ ๋งฅ๋ฝ์์ ๊ณ ๋ ค๋ ์ ์์ต๋๋ค.
๋ถ์ฐ ํ๊ฒฝ์์์ ACID ํธ๋์ญ์
๋ถ์ฐ ํ๊ฒฝ์์ ACID ์์ฑ์ ์ ์งํ๋ ๊ฒ์ ๋ณต์กํ ๊ณผ์ ์ ๋๋ค. NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ ์ผ๊ด์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ๋ค์ํ ๊ธฐ์ ์ ์ฌ์ฉํฉ๋๋ค.
1. 2๋จ๊ณ ์ปค๋ฐ (2PC)
2PC๋ ์ฌ๋ฌ ๋ ธ๋์ ๊ฑธ์ณ ์์์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ๋๋ฆฌ ์ฌ์ฉ๋๋ ํ๋กํ ์ฝ์ ๋๋ค. 2PC์์ ์ฝ๋๋ค์ดํฐ ๋ ธ๋๋ ๋ชจ๋ ์ฐธ์ฌ ๋ ธ๋์ ๊ฑธ์ณ ํธ๋์ญ์ ์ ์กฐ์ ํฉ๋๋ค. ํธ๋์ญ์ ์ ์ค๋น ๋จ๊ณ์ ์ปค๋ฐ ๋จ๊ณ์ ๋ ๋จ๊ณ๋ก ์งํ๋ฉ๋๋ค. ์ค๋น ๋จ๊ณ์์ ๊ฐ ๋ ธ๋๋ ํธ๋์ญ์ ์ ์ปค๋ฐํ ์ค๋น๋ฅผ ํ๊ณ ์ฝ๋๋ค์ดํฐ์๊ฒ ์๋ฆฝ๋๋ค. ๋ชจ๋ ๋ ธ๋๊ฐ ์ค๋น๋๋ฉด ์ฝ๋๋ค์ดํฐ๋ ์ปค๋ฐํ๋ผ๊ณ ์ง์ํฉ๋๋ค. ๋ ธ๋ ์ค ํ๋๋ผ๋ ์ค๋น์ ์คํจํ๋ฉด ์ฝ๋๋ค์ดํฐ๋ ๋ชจ๋ ๋ ธ๋์ ์ค๋จํ๋ผ๊ณ ์ง์ํฉ๋๋ค.
๊ณผ์ : 2PC๋ ๋๋ฆด ์ ์์ผ๋ฉฐ ๋จ์ผ ์ฅ์ ์ (์ฝ๋๋ค์ดํฐ)์ ์ ๋ฐํ ์ ์์ต๋๋ค. ๋ฐ๋ผ์ ํ๋์ ์ธ NewSQL ์์คํ ์ ์ข ์ข ๋์ ํ๋กํ ์ฝ์ ์ ํธํฉ๋๋ค.
2. Paxos ๋ฐ Raft ํฉ์ ์๊ณ ๋ฆฌ์ฆ
Paxos์ Raft๋ ๋ถ์ฐ ์์คํ ์ด ์ฅ์ ์ํฉ์์๋ ๋จ์ผ ๊ฐ์ ํฉ์ํ ์ ์๋๋ก ํ๋ ํฉ์ ์๊ณ ๋ฆฌ์ฆ์ ๋๋ค. ์ด๋ฌํ ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ์ดํฐ ์ผ๊ด์ฑ๊ณผ ๋ด๊ฒฐํจ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์์ ์์ฃผ ์ฌ์ฉ๋ฉ๋๋ค. ์ด๋ค์ 2PC์ ๋ํ ๋ ๊ฒฌ๊ณ ํ๊ณ ํจ์จ์ ์ธ ๋์์ ์ ๊ณตํฉ๋๋ค.
์์: CockroachDB๋ Raft๋ฅผ ์ฌ์ฉํ์ฌ ์ฌ๋ฌ ๋ ธ๋์ ๋ฐ์ดํฐ๋ฅผ ๋ณต์ ํ๊ณ ๋ชจ๋ ๋ณต์ ๋ณธ์ด ์ผ๊ด์ฑ์ ์ ์งํ๋๋ก ๋ณด์ฅํฉ๋๋ค. ์ด๋ ํ ๋ ธ๋๊ฐ ์คํจํ๋๋ผ๋ ์์คํ ์ด ๋ฐ์ดํฐ ์์ค์ด๋ ๋ถ์ผ์น ์์ด ๊ณ์ ์๋ํ ์ ์์์ ์๋ฏธํฉ๋๋ค.
3. Spanner์ TrueTime API
Google Spanner๋ TrueTime์ด๋ผ๋ ์ ์ญ์ ์ผ๋ก ๋ถ์ฐ๋ ์ธ๋ถ ์ผ๊ด์ฑ ํ์์คํฌํ ์์คํ ์ ์ฌ์ฉํฉ๋๋ค. TrueTime์ ํด๋ญ ๋ถํ์ค์ฑ์ ๋ํ ๋ณด์ฅ๋ ์ํ์ ์ ๊ณตํ์ฌ Spanner๊ฐ ์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋ ๋ฐ์ดํฐ ์ผํฐ ์ ๋ฐ์ ๊ฑธ์ณ ๊ฐ๋ ฅํ ์ผ๊ด์ฑ์ ๋ฌ์ฑํ ์ ์๊ฒ ํฉ๋๋ค. ์ด๋ฅผ ํตํด Spanner๋ ๋ฎ์ ์ง์ฐ ์๊ฐ๊ณผ ๋์ ์ฒ๋ฆฌ๋์ผ๋ก ์ ์ญ์ ์ผ๋ก ๋ถ์ฐ๋ ํธ๋์ญ์ ์ ์ํํ ์ ์์ต๋๋ค.
์์: TrueTime์ ๋ถ์ฐ ํ๊ฒฝ์์๋ ๊ฐ์ฅ ๊ฐ๋ ฅํ ๊ฒฉ๋ฆฌ ์์ค์ธ ์ง๋ ฌํ ๊ฐ๋ฅ์ฑ์ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ์ ์งํ ์ ์๊ฒ ํด์ฃผ๋ฏ๋ก Spanner ์ํคํ ์ฒ์ ์ค์ํ ๊ตฌ์ฑ ์์์ ๋๋ค.
NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ฌ์ฉ์ ์ด์
- ํ์ฅ์ฑ: NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฆ๊ฐํ๋ ์ํฌ๋ก๋์ ๋ฐ์ดํฐ ๋ณผ๋ฅจ์ ์ฒ๋ฆฌํ๊ธฐ ์ํด ์ํ์ ์ผ๋ก ํ์ฅํ ์ ์์ต๋๋ค.
- ACID ์ค์: ๊ฐ๋ ฅํ ACID ๋ณด์ฅ์ ์ ๊ณตํ์ฌ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ๊ณผ ์ผ๊ด์ฑ์ ๋ณด์ฅํฉ๋๋ค.
- ์ฑ๋ฅ: ๊ณ ์ฑ๋ฅ ํธ๋์ญ์ ์ฒ๋ฆฌ์ ์ต์ ํ๋์ด ์์ต๋๋ค.
- ๋ด๊ฒฐํจ์ฑ: ์ผ๋ถ ๋ ธ๋๊ฐ ์คํจํ๋๋ผ๋ ๊ณ์ ์๋ํ ์ ์๋๋ก ๋ด๊ฒฐํจ์ฑ์ ๊ฐ๋๋ก ์ค๊ณ๋์์ต๋๋ค.
- SQL ํธํ์ฑ: ๋๋ถ๋ถ์ NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ SQL ํธํ ์ธํฐํ์ด์ค๋ฅผ ์ ๊ณตํ์ฌ ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ ์ฝ๊ฒ ๋ง์ด๊ทธ๋ ์ด์ ํ ์ ์์ต๋๋ค.
NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฌ์ฉ ์ฌ๋ก
NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ์ฅ์ฑ๊ณผ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ๋ชจ๋ ์๊ตฌํ๋ ๊ด๋ฒ์ํ ์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉํฉ๋๋ค. ์ผ๋ฐ์ ์ธ ์ฌ์ฉ ์ฌ๋ก๋ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
1. ๊ธ์ต ์ ํ๋ฆฌ์ผ์ด์
์ํ ์์คํ ๋ฐ ๊ฒฐ์ ์ฒ๋ฆฌ๊ธฐ์ ๊ฐ์ ๊ธ์ต ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ธ์ต ๊ฑฐ๋์ ์ ํ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๊ธฐ ์ํด ์๊ฒฉํ ACID ๋ณด์ฅ์ ์๊ตฌํฉ๋๋ค. NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ ์ ์งํ๋ฉด์ ๋์ฉ๋ ํธ๋์ญ์ ์ฒ๋ฆฌ์ ํ์ํ ํ์ฅ์ฑ๊ณผ ์ฑ๋ฅ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
์์: ๋งค์ผ ์๋ฐฑ๋ง ๊ฑด์ ๊ฑฐ๋๋ฅผ ์ฒ๋ฆฌํ๋ ๊ธ๋ก๋ฒ ๊ฒฐ์ ๊ฒ์ดํธ์จ์ด๋ ๋๋์ ํธ๋ํฝ์ ์ฒ๋ฆฌํ๊ณ ๋ชจ๋ ๊ฑฐ๋๊ฐ ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌ๋๋๋ก ๋ณด์ฅํ ์ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ์ํฉ๋๋ค. NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ด๋ฌํ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ๋ฐ ํ์ํ ํ์ฅ์ฑ๊ณผ ACID ๋ณด์ฅ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
2. ์ ์์๊ฑฐ๋ ํ๋ซํผ
์ ์์๊ฑฐ๋ ํ๋ซํผ์ ๋ง์ ์์ ๋์ ์ฌ์ฉ์์ ํธ๋์ญ์ ์ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ด ์ํฌ๋ก๋๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ํ์ํ ํ์ฅ์ฑ๊ณผ ์ฑ๋ฅ์ ์ ๊ณตํ๋ฉด์ ์ฃผ๋ฌธ์ด ์ฌ๋ฐ๋ฅด๊ฒ ์ฒ๋ฆฌ๋๊ณ ์ฌ๊ณ ๊ฐ ์ ํํ๊ฒ ์ ๋ฐ์ดํธ๋๋๋ก ๋ณด์ฅํ ์ ์์ต๋๋ค.
์์: ๋ํ ์จ๋ผ์ธ ์๋งค์ ์ฒด๋ ์ฐํด ์ผํ ์์ฆ ๋์์ ํผํฌ ๋ก๋๋ฅผ ์ฒ๋ฆฌํ ์ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ์ํฉ๋๋ค. NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฆ๊ฐ๋ ์์๋ฅผ ์ถฉ์กฑ์ํค๊ธฐ ์ํด ํ์ฅํ ์ ์์ผ๋ฉฐ ๋ชจ๋ ์ฃผ๋ฌธ์ด ์ค๋ฅ ์์ด ์ฒ๋ฆฌ๋๋๋ก ๋ณด์ฅํฉ๋๋ค.
3. ๊ฒ์ ์ ํ๋ฆฌ์ผ์ด์
๋๊ท๋ชจ ๋ค์ค ์ฌ์ฉ์ ์จ๋ผ์ธ ๊ฒ์(MMO)์ ๋ง์ ์์ ๋์ ํ๋ ์ด์ด์ ๋ณต์กํ ๊ฒ์ ๋ก์ง์ ์ฒ๋ฆฌํด์ผ ํฉ๋๋ค. NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ด ์ํฌ๋ก๋๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ํ์ํ ํ์ฅ์ฑ๊ณผ ์ฑ๋ฅ์ ์ ๊ณตํ๋ฉด์ ๊ฒ์ ์ํ๊ฐ ์ผ๊ด๋๊ณ ํ๋ ์ด์ด๊ฐ ๋ถ์ ํ์๋ฅผ ํ ์ ์๋๋ก ๋ณด์ฅํ ์ ์์ต๋๋ค.
์์: ์ธ๊ธฐ ์๋ MMO ๊ฒ์์ ์๋ฐฑ๋ง ๋ช ์ ๋์ ํ๋ ์ด์ด๋ฅผ ์ฒ๋ฆฌํ๊ณ ๋ชจ๋ ํ๋ ์ด์ด ๋ฐ์ดํฐ๊ฐ ์ผ๊ด๋๋๋ก ๋ณด์ฅํ ์ ์๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค๊ฐ ํ์ํฉ๋๋ค. NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ด๋ฌํ ์๊ตฌ ์ฌํญ์ ์ถฉ์กฑํ๋ ๋ฐ ํ์ํ ํ์ฅ์ฑ๊ณผ ACID ๋ณด์ฅ์ ์ ๊ณตํ ์ ์์ต๋๋ค.
4. ๊ณต๊ธ๋ง ๊ด๋ฆฌ
ํ๋์ ๊ณต๊ธ๋ง์ ์ ์ธ๊ณ์ ์ผ๋ก ๋ถ์ฐ๋์ด ์์ผ๋ฉฐ ์ฌ๊ณ ์์ค, ์ฃผ๋ฌธ ์ํ ๋ฐ ๋ฐฐ์ก ์ถ์ ์ ๋ํ ์ค์๊ฐ ๊ฐ์์ฑ์ด ํ์ํฉ๋๋ค. NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ณต๊ธ๋ง ์์คํ ์์ ์์ฑ๋๋ ๋๋์ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๋ ๋ฐ ํ์ํ ํ์ฅ์ฑ๊ณผ ์ฑ๋ฅ์ ์ ๊ณตํ๋ฉด์ ๋ฐ์ดํฐ๊ฐ ์ ํํ๊ณ ์ผ๊ด๋๋๋ก ๋ณด์ฅํ ์ ์์ต๋๋ค.
5. IoT (์ฌ๋ฌผ ์ธํฐ๋ท) ํ๋ซํผ
IoT ํ๋ซํผ์ ์ฐ๊ฒฐ๋ ์ฅ์น์์ ์์ฒญ๋ ์์ ๋ฐ์ดํฐ๋ฅผ ์์ฑํฉ๋๋ค. NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ด ๋ฐ์ดํฐ๋ฅผ ์ ์ฅํ๊ณ ๋ถ์ํ์ฌ ์ฅ์น ์ฑ๋ฅ, ์ฌ์ฉ ํจํด ๋ฐ ์ ์ฌ์ ์ธ ๋ฌธ์ ์ ๋ํ ํต์ฐฐ๋ ฅ์ ์ ๊ณตํ๋ ๋ฐ ์ฌ์ฉ๋ ์ ์์ต๋๋ค. ๋ํ ์ผ์ ํ๋ ๊ฐ ๋ฐ ์ ์ด ๋ช ๋ น๊ณผ ๊ฐ์ ์ค์ํ IoT ๋ฐ์ดํฐ๊ฐ ์์ ์ ์ผ๋ก ์ ์ฅ๋๊ณ ์ฒ๋ฆฌ๋๋๋ก ๋ณด์ฅํฉ๋๋ค.
NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์
๋ค์์ ์ฃผ๋ชฉํ ๋งํ NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ช ๊ฐ์ง ์์ ๋๋ค.
- Google Spanner: ์ ์ธ๊ณ์ ์ผ๋ก ๋ถ์ฐ๋๊ณ ํ์ฅ ๊ฐ๋ฅํ๋ฉฐ ๊ฐ๋ ฅํ ์ผ๊ด์ฑ์ ์ ๊ณตํ๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค ์๋น์ค์ ๋๋ค.
- CockroachDB: ํธ๋์ญ์ ๋ฐ ๊ฐ๋ ฅํ ์ผ๊ด์ฑ์ ๊ฐ์ถ ํค-๊ฐ ์ ์ฅ์ ์์ ๊ตฌ์ถ๋ ๋ถ์ฐ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค.
- TiDB: ์จ๋ผ์ธ ํธ๋์ญ์ ์ฒ๋ฆฌ(OLTP)์ ์จ๋ผ์ธ ๋ถ์ ์ฒ๋ฆฌ(OLAP) ์ํฌ๋ก๋๋ฅผ ๋ชจ๋ ์ง์ํ๋ ์คํ ์์ค ๋ถ์ฐ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค.
- VoltDB: ๊ณ ์ ๋ฐ์ดํฐ์ ๋น ๋ฅธ ์์ฌ ๊ฒฐ์ ์ ์ํด ์ค๊ณ๋ ์ธ๋ฉ๋ชจ๋ฆฌ, ์ค์ผ์ผ์์ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค.
- NuoDB: ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ์ํด ์ค๊ณ๋ ๋ถ์ฐ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋๋ค.
์ฌ๋ฐ๋ฅธ NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค ์ ํํ๊ธฐ
์ ํ๋ฆฌ์ผ์ด์ ์ ์ ํฉํ NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ ํํ๋ ๊ฒ์ ๋ค์์ ํฌํจํ ์ฌ๋ฌ ์์ธ์ ๋ฐ๋ผ ๋ฌ๋ผ์ง๋๋ค.
- ํ์ฅ์ฑ ์๊ตฌ ์ฌํญ: ์ผ๋ง๋ ๋ง์ ๋ฐ์ดํฐ์ ํธ๋ํฝ์ ์ฒ๋ฆฌํด์ผ ํฉ๋๊น?
- ACID ์๊ตฌ ์ฌํญ: ์ ํ๋ฆฌ์ผ์ด์ ์ ACID ๋ณด์ฅ์ด ์ผ๋ง๋ ์ค์ํฉ๋๊น?
- ์ฑ๋ฅ ์๊ตฌ ์ฌํญ: ํธ๋์ญ์ ์ ์ผ๋ง๋ ๋นจ๋ฆฌ ์ฒ๋ฆฌํด์ผ ํฉ๋๊น?
- ๋ฐฐํฌ ํ๊ฒฝ: ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ์ด๋์ ๋ฐฐํฌํ ๊ฒ์ ๋๊น(์: ์จํ๋ ๋ฏธ์ค, ํด๋ผ์ฐ๋)?
- SQL ํธํ์ฑ: ๊ธฐ์กด ์ ํ๋ฆฌ์ผ์ด์ ๋ฐ ๊ฐ๋ฐํ์ SQL ํธํ์ฑ์ด ์ผ๋ง๋ ์ค์ํฉ๋๊น?
- ๋น์ฉ: ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์์ฐ์ ์ผ๋ง์ ๋๊น?
๊ฒฐ์ ์ ๋ด๋ฆฌ๊ธฐ ์ ์ ์๊ตฌ ์ฌํญ์ ์ ์คํ๊ฒ ํ๊ฐํ๊ณ ๋ค์ํ NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๊ธฐ๋ฅ๊ณผ ์ฑ๋ฅ์ ๋น๊ตํ๋ ๊ฒ์ด ์ค์ํฉ๋๋ค. ํน์ ์ํฌ๋ก๋๋ก ๋ค์ํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฑ๋ฅ์ ํ ์คํธํ๊ธฐ ์ํด ๋ฒค์น๋งํฌ๋ฅผ ์คํํ๋ ๊ฒ์ ๊ณ ๋ คํ์ญ์์ค.
NewSQL์ ๋ฏธ๋
NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋น ๋ฅด๊ฒ ๋ฐ์ ํ๋ ๊ธฐ์ ์ ๋๋ค. ๋ฐ์ดํฐ ๋ณผ๋ฅจ๊ณผ ์ ํ๋ฆฌ์ผ์ด์ ๋ณต์ก์ฑ์ด ๊ณ์ ์ฆ๊ฐํจ์ ๋ฐ๋ผ ํ์ฅ ๊ฐ๋ฅํ๊ณ ์ผ๊ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์์๋ ์ฆ๊ฐํ ๊ฒ์ ๋๋ค. ์์ผ๋ก ๋ช ๋ ๋์ NewSQL ์ํคํ ์ฒ, ์๊ณ ๋ฆฌ์ฆ ๋ฐ ๋๊ตฌ์์ ๋ ๋ง์ ํ์ ์ ๊ธฐ๋ํ ์ ์์ต๋๋ค.
NewSQL์ ์ ์ฌ์ ์ธ ๋ฏธ๋ ๋ํฅ์ ๋ค์๊ณผ ๊ฐ์ต๋๋ค.
- ๋ ๋ง์ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ๋ฐ์ดํฐ๋ฒ ์ด์ค: NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ฟ ๋ฒ๋คํฐ์ค ๋ฐ ์๋ฒ๋ฆฌ์ค ์ปดํจํ ๊ณผ ๊ฐ์ ํด๋ผ์ฐ๋ ๋ค์ดํฐ๋ธ ๊ธฐ์ ์ ํ์ฉํ์ฌ ํด๋ผ์ฐ๋ ํ๊ฒฝ์ ๋ง๊ฒ ์ ์ ๋ ์ค๊ณ๋ ๊ฒ์ ๋๋ค.
- ํฅ์๋ ์ง๋ฆฌ์ ๋ถ์ฐ: NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ์ง๋ฆฌ์ ์ผ๋ก ๋ถ์ฐ๋ ๋ฐ์ดํฐ๋ฅผ ์ฒ๋ฆฌํ๊ณ ์ ์ธ๊ณ ์ด๋์์๋ ๋ฐ์ดํฐ์ ๋ํ ๋ฎ์ ์ง์ฐ ์๊ฐ ์ก์ธ์ค๋ฅผ ์ ๊ณตํ๋ ๋ฐ ํจ์ฌ ๋ ๋ฅ์ํด์ง ๊ฒ์ ๋๋ค.
- ๋จธ์ ๋ฌ๋๊ณผ์ ํตํฉ: NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋จธ์ ๋ฌ๋ ํ๋ซํผ๊ณผ ์ ์ ๋ ํตํฉ๋์ด ์ค์๊ฐ ๋ถ์ ๋ฐ ๋ฐ์ดํฐ ๊ธฐ๋ฐ ์์ฌ ๊ฒฐ์ ์ ๊ฐ๋ฅํ๊ฒ ํ ๊ฒ์ ๋๋ค.
- ํฅ์๋ ๋ณด์: NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฌด๋จ ์ก์ธ์ค๋ก๋ถํฐ ๋ฏผ๊ฐํ ๋ฐ์ดํฐ๋ฅผ ๋ณดํธํ๊ธฐ ์ํด ๋ ์ง๋ณด๋ ๋ณด์ ๊ธฐ๋ฅ์ ํตํฉํ ๊ฒ์ ๋๋ค.
๊ฒฐ๋ก
NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ์ฅ์ฑ๊ณผ ๋ฐ์ดํฐ ์ผ๊ด์ฑ์ ๋ชจ๋ ์๊ตฌํ๋ ์ ํ๋ฆฌ์ผ์ด์ ์ ๋ํ ๊ฐ๋ ฅํ ์๋ฃจ์ ์ ์ ๊ณตํฉ๋๋ค. ์ ํต์ ์ธ RDBMS์ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฅ์ ์ ๊ฒฐํฉํจ์ผ๋ก์จ NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํ๋์ ์ธ ๋ถ์ฐ ์ ํ๋ฆฌ์ผ์ด์ ์ ๊ตฌ์ถํ๊ธฐ ์ํ ๊ฐ๋ ฅํ ํ๋ซํผ์ ์ ๊ณตํฉ๋๋ค. ํ์ฅ ๊ฐ๋ฅํ๊ณ ์ผ๊ด๋ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ํ ์์๊ฐ ๊ณ์ ์ฆ๊ฐํจ์ ๋ฐ๋ผ NewSQL์ ๋ฐ์ดํฐ ๊ด๋ฆฌ์ ๋ฏธ๋์์ ์ ์ ๋ ์ค์ํ ์ญํ ์ ํ ๊ฒ์ ๋๋ค.
๊ธ์ต ์์คํ , ์ ์์๊ฑฐ๋ ํ๋ซํผ, ๊ฒ์ ์ ํ๋ฆฌ์ผ์ด์ ๋๋ IoT ํ๋ซํผ์ ๊ตฌ์ถํ๋ , NewSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ๊ณผ ์ ๋ขฐ์ฑ์ ๋ณด์ฅํ๋ฉด์ ๊ท๋ชจ์ ๋ณต์ก์ฑ์ ๊ณผ์ ๋ฅผ ํด๊ฒฐํ๋ ๋ฐ ๋์์ด ๋ ์ ์์ต๋๋ค. NewSQL์ ์ธ๊ณ๋ฅผ ํํํ์ฌ ์กฐ์ง์ ์ด๋ค ์ด์ ์ ์ค ์ ์๋์ง ํ์ธํด ๋ณด์ธ์.